package com.engine.salary.sys.entity.po;


import com.engine.salary.annotation.TableTitle;
import com.engine.salary.util.valid.DataCheck;
import com.engine.salary.util.valid.RuntimeTypeEnum;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
import com.thoughtworks.xstream.annotations.XStreamOmitField;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@XStreamAlias("SalarySysConf")
public class SalarySysConfPO {

    @DataCheck(require = true, runtime = RuntimeTypeEnum.UPDATE, message = "id为空")
    @XStreamOmitField
    private Long id;
    /**
     * 标识
     */
    @TableTitle(title = "标识", dataIndex = "confKey", key = "confKey")
    @DataCheck(require = true, message = "标识为空")
    @XStreamAlias("confKey")
    @XStreamAsAttribute
    private String confKey;
    /**
     * 值
     */
    @TableTitle(title = "值", dataIndex = "confValue", key = "confValue")
    @DataCheck(require = true, message = "标识为空")
    @XStreamAlias("confValue")
    @XStreamAsAttribute
    private String confValue;
    /**
     * 标题
     */
    @TableTitle(title = "标题", dataIndex = "title", key = "title")
    @DataCheck(require = true, message = "标题为空")
    @XStreamAlias("title")
    @XStreamAsAttribute
    private String title;
    /**
     * 所属模块
     */
    @TableTitle(title = "所属模块", dataIndex = "module", key = "module")
    @XStreamAlias("module")
    @XStreamAsAttribute
    private String module;
    /**
     * 排序权重
     */
    @TableTitle(title = "排序权重", dataIndex = "orderWeight", key = "orderWeight")
    @XStreamAlias("orderWeight")
    @XStreamAsAttribute
    private Integer orderWeight;
    /**
     * 描述
     */
    @TableTitle(title = "描述", dataIndex = "description", key = "description")
    @XStreamAlias("description")
    @XStreamAsAttribute
    private String description;
    /**
     * 是否已删除，0否，1是
     */
    @XStreamAlias("deleteType")
    @XStreamAsAttribute
    private Integer deleteType;

    /**
     * 创建时间
     */
    @XStreamAlias("createTime")
    @XStreamAsAttribute
    private Date createTime;
    /**
     * 修改时间
     */
    @XStreamAlias("updateTime")
    @XStreamAsAttribute
    private Date updateTime;
}